package com.yanqu.road.entity.monopolymarket.config;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.DataStatus;

import java.util.*;

/**
 * @Description
 * @Author cwq
 * @Data 2021/9/14 10:51
 */
public class MonopolyMarketResConfig extends DataObject{
    @FieldTypeAnnotation(desc = "渠道id")
    private int channelId;

    @FieldTypeAnnotation(desc = "榷场资源点地图放大系数")
    private int mapSize;

    @FieldTypeAnnotation(desc = "榷场地图循环基础底值")
    private int mapBase;

    @FieldTypeAnnotation(desc = "榷场地图循环每次递增")
    private int mapAdd;

    @FieldTypeAnnotation(desc = "榷场地图循环次数")
    private int mapRound;

    @FieldTypeAnnotation(desc = "榷场地图中心值")
    private int mapMidValue;

    @FieldTypeAnnotation(desc = "扩展参数配置 (json 格式)")
    private String resConfig;

    @FieldTypeAnnotation(desc = "npc 血量")
    private String bloodVolume;

    private List<MonopolyMarketNpcBloodConfig> npcBloodConfigList = new ArrayList<>();

    public Map<Integer,List<MonopolyMarketResExtendParam>> resExtendParamMap = new HashMap<>();

    public int getChannelId() {
        return channelId;
    }

    public void setChannelId(int channelId) {
        if (this.channelId != channelId) {
            this.channelId = channelId;
            setOp(DataStatus.Update);
        }
    }

    public int getMapSize() {
        return mapSize;
    }
    public void setMapSize(int mapSize) {
        if (this.mapSize != mapSize) {
            this.mapSize = mapSize;
            setOp(DataStatus.Update);
        }
    }

    public int getMapBase() {
        return mapBase;
    }
    public void setMapBase(int mapBase) {
        if (this.mapBase != mapBase) {
            this.mapBase = mapBase;
            setOp(DataStatus.Update);
        }
    }

    public int getMapAdd() {
        return mapAdd;
    }
    public void setMapAdd(int mapAdd) {
        if (this.mapAdd != mapAdd) {
            this.mapAdd = mapAdd;
            setOp(DataStatus.Update);
        }
    }

    public int getMapRound() {
        return mapRound;
    }
    public void setMapRound(int mapRound) {
        if (this.mapRound != mapRound) {
            this.mapRound = mapRound;
            setOp(DataStatus.Update);
        }
    }

    public int getMapMidValue() {
        return mapMidValue;
    }
    public void setMapMidValue(int mapMidValue) {
        if (this.mapMidValue != mapMidValue) {
            this.mapMidValue = mapMidValue;
            setOp(DataStatus.Update);
        }
    }

    public String getBloodVolume() {
        return bloodVolume;
    }

    public void setBloodVolume(String bloodVolume) {
        if (!Objects.equals(this.bloodVolume, bloodVolume)) {
            this.bloodVolume = bloodVolume;
            setOp(DataStatus.Update);
        }
    }

    public String getResConfig() {
        return resConfig;
    }

    public void setResConfig(String resConfig) {
        if (!Objects.equals(this.resConfig, resConfig)) {
            this.resConfig = resConfig;
            setOp(DataStatus.Update);
        }
    }

    public List<MonopolyMarketNpcBloodConfig> getNpcBloodConfigList() {
        return npcBloodConfigList;
    }

    public void setNpcBloodConfigList(List<MonopolyMarketNpcBloodConfig> npcBloodConfigList) {
        this.npcBloodConfigList = npcBloodConfigList;
    }

    public Map<Integer, List<MonopolyMarketResExtendParam>> getResExtendParamMap() {
        return resExtendParamMap;
    }

    public void setResExtendParamMap(Map<Integer, List<MonopolyMarketResExtendParam>> resExtendParamMap) {
        this.resExtendParamMap = resExtendParamMap;
    }
}
